package com.demo.homework;

import java.io.*;
import java.math.BigDecimal;

public class Test1 {
    public static void main(String[] args) throws Exception {

        // 封装目录
        File srcFolder = new File("E:\\ideaTest\\shixun\\day04\\src");
        // 递归功能实现
//        getAllJavaFilePaths(srcFolder);
        IO1();
//        copyUTF8();
    }

    /**
     * 从utf-8编码格式的文本复制到GBK编码的文本（不能出现乱码）
     */
    private static void copyUTF8() throws Exception {
        String utf8 = "E:\\ideaTest\\shixun\\day04\\src\\com\\demo\\homework\\utf8.txt";
        FileInputStream fr = new FileInputStream(utf8);
        InputStreamReader isr = new InputStreamReader(fr,"UTF-8");
        BufferedReader in = new BufferedReader(isr);
        String s = in.readLine();
        if(s==null){
            System.out.println(utf8);
            return;
        }else{
            System.out.println(s);
        }
        FileOutputStream fos = new FileOutputStream("GBK.txt");
        OutputStreamWriter out = new OutputStreamWriter(fos,"GBK");
//        System.out.println(s);
        out.write(s);
        out.close();
    }

    private static void IO1() {
        File file = new File("D:\\HelloWorld.txt"); //D:\HelloWorld.txt
        try {
            System.out.println(file + "是否创建成功：" + file.createNewFile());
        } catch (IOException e) {
            e.printStackTrace();
        }
        if (file.isDirectory()) {
            System.out.println(file.getAbsolutePath() + "是目录");
        } else if (file.isFile()) {
            System.out.println(file + "是文件");
        }
        File dir = new File("D:\\IOTest");
        System.out.println(dir + "是否创建成功：" + dir.mkdir());
        dir.mkdir();
        //第四步：将HelloWorld.txt移动到IOTest目录下去
        File newdirectory = new File(dir.getPath()+"/"+file.getName());
        System.out.println(dir.getPath()+"/"+file.getName());
        if(file.renameTo(newdirectory)){
            System.out.println("文件移动成功");
        }else {
            System.out.println("文件移动失败");
        }

    }


    /**
     * 递归输出src目录中的所有.java文件的绝对路径。
     */
    private static void getAllJavaFilePaths(File srcFolder) {
        // 获取该目录下所有的文件或者文件夹的File数组
        File[] fileArray = srcFolder.listFiles();
        // 遍历File数组，得到每一个File对象
        for (File file : fileArray) {
            // 判断该File对象是否是文件夹
            if (file.isDirectory()) {
                getAllJavaFilePaths(file);
            } else {
                // 继续判断是以.Java结尾
                if (file.getName().endsWith(".java")) {
                    // 输出该文件的路径
                    System.out.println(file.getAbsolutePath());
                }

            }
        }
    }

    /**
     * 在电脑D盘下创建一个文件为HelloWorld.txt文件，判断他是文件还是目录，再创建一个目录IOTest，之后将HelloWorld.txt拷贝到IOTest目录的a.txt去。
     */
}
